In diesem größeren Kapitel schauen wir uns die wesentlichen HTML5-Elemente an. SelfHTML ist eine sehr gute Quelle, um HTML zu lernen. Noch einmal ganz kurz: Was ist HTML? Die Hypertext Markup Language (HTML) ist eine textbasierte Auszeichnungssprache zur Strukturierung digitaler Dokumente wie Texte mit Hyperlinks, Bildern und anderen Inhalten. HTML-Dokumente sind die Grundlage des World Wide Web und werden von Webbrowsern dargestellt. Neben den vom Browser angezeigten Inhalten können HTML-Dateien zusätzliche Angaben in Form von Metainformationen enthalten, zum Beispiel über die im Text verwendeten Sprachen, über den Autor oder über den zusammengefassten Inhalt des Textes. HTML dient als Auszeichnungssprache dazu, einen Text semantisch zu strukturieren, nicht aber zu formatieren. HTML ist keine Programmiersprache! Die visuelle Darstellung ist nicht Teil der HTML-Spezifikationen und wird durch den Webbrowser und Gestaltungsvorlagen wie CSS bestimmt. Ein ähnliches Konzept zur logischen Beschreibung von Dokumenten steht hinter dem Satzsystem TeX oder LaTeX, das im Unterschied zu HTML jedoch auf die Ausgabe per Drucker auf Papier zielt. Die Grundstruktur einer HTML5-Seite sieht wie folgt aus. Zunächst erfolgt die Dokumenttyp-Deklaration. Das ist immer . Danach kommt der head, in dem Metadaten, Skript- und Style-Referenzen abgelegt werden. Dahinter kommt der body. Das ist der sichtbare Inhalt der Webseite, also Text mit Überschriften, Verweisen, Grafikreferenzen und so weiter. Ein zentrales HTML-Element sind die Überschriften, sogenannte headings. Die größte Überschrift ist h1 und die kleinste ist h6. Damit kann man also einen Text auf bis zu sechs Ebenen gliedern und die Hierarchieverhältnisse abbilden. Die Formatierung jeder Überschrift wie die Größe, Farbe und Schriftart wird, wie alles andere auch, über CSS extern definiert. In HTML definiert man nur die Struktur. Absätze (paragraph p) dienen der Gliederung eines Textes. p umfasst einen Textblock – es steht nicht für den Zwischenraum zwischen zwei Absätzen. Absatz-Elemente dürfen keine anderen blockerzeugenden Elemente wie Überschriften, Textabsätze oder Listen enthalten. Das break-Element sollte ausschließlich für Zeilenumbrüche, die Bestandteil des Inhalts sind, genutzt werden. Zum Beispiel für Gedichte oder Adressen. Dabei sind ausnahmsweise zwei Schreibweisen erlaubt. Die erste Schreibweise entspricht voll dem aktuellen HTML5-Standard. Die zweite Schreibweise finde ich jedoch persönlich sinnvoller, da bei der ersten Schreibweise formell das Ende des Elements nicht existiert und damit keine XHTML- beziehungsweise keine XML-Kompatibilität erfüllt ist. Soweit ich weiß, wird auch die zweite Schreibweise im HTML5-Standard noch toleriert. Der Horizontal Ruler (hr) kennzeichnet einen thematischen Bruch. Ursprünglich wurden solche Trenner als waagerechte Linien dargestellt. In HTML5 bekommt das hr-Element die Bedeutung eines Themenwechsels auf Absatz-Ebene: „paragraph-level thematic break“. Sichtbare Trennlinien dienen auch visuell der Abgrenzung von nicht unmittelbar zusammengehörigen Textabschnitten. hr fügt also eine Trennlinie ein und erzeugt dabei einen eigenen Absatz. Auch hier fehlt streng genommen das Ende des Elements, um XML-konform zu sein. Dies ist aber laut W3C-Standard so erlaubt. Die Ordered List (ol) bezeichnet eine geordnete oder nummerierte Liste, also eine Liste, bei der die Reihenfolge der Elemente von Bedeutung ist. Mit li beginnt ein neuer Punkt innerhalb der Liste. Das HTML-Element li bedeutet „list item“, also Listeneintrag. Hier gilt generell wieder, dass jedes Beginn-Element auch ein passendes Ende-Element haben muss. Das Verschachteln von nummerierten Listen ist möglich, bewirkt aber keine Gesamtnummerierung. Automatische Nummerierungshierarchien wie 1, 1.1, 1.1.1 sind mit HTML allein nicht möglich. Dazu bedarf es der Unterstützung von CSS, indem man Listen mit hybrider Nummerierung formatiert. Sie können aber in HTML den Startwert einer Liste festlegen und bei einem beliebigen Listenelement neu setzen. Dazu nutzen Sie das Attribut „start“ des ol-Elementes. Erlaubte Werte für dieses Attribut sind ganze Zahlen. In diesem Beispiel startet die Gesamtliste bei fünf. Im zweiten Element wird dann festgelegt, dass die Nummerierung hier wieder bei eins beginnen soll. Das Element ul (unordered list) beschreibt eine Aufzählungsliste. Aufzählungslisten sind zum Beispiel von Bedeutung, um Produkteigenschaften oder Argumente für eine These übersichtlich darzustellen. Bei einer Aufzählungsliste werden die Listeneinträge von grafischen Browsern standardmäßig mit einem Aufzählungszeichen (Bullet) versehen. Das Verschachteln von Listen ist ebenfalls möglich. Zwischen dem Beginn und Ende eines Listenelements darf eine komplette weitere Liste stehen. Auch andere Listentypen sind dabei erlaubt. Definitionslisten dl (description list), seit HTML5 Beschreibungslisten, sind beispielsweise für Glossare gedacht. Ein Glossar besteht meist aus einer Liste von Einträgen, die wiederum aus mindestens einem zu erklärenden Sachverhalt nebst mindestens einer Erklärung besteht. Eine Definitions- beziehungsweise Beschreibungsliste wird mit dl eingeleitet und mit beendet. Der zu erläuternde Ausdruck steht zwischen dem dt-Element als description list term. Das dd-Element als description list description umschließt die Erläuterung. Die Abfolge von dt- und dd-Elementen innerhalb einer dl-Liste ist nicht streng geregelt: Es dürfen auch mehrere dt- oder dd-Elemente hintereinander folgen. Zum Beispiel könnten Begriffe mit einer Erklärung abgehandelt werden oder mehrere Bedeutungen für einen Begriff existieren. Das Verschachteln von Definitionslisten ist ebenfalls möglich. Dadurch können Sie baumartige Strukturen im Text abbilden. Mit dem image-Element können Sie Grafikdateien in Ihre HTML-Dokumente einbinden. img ist ein sogenanntes Standalone-Tag. Das End-Tag muss nach aktuellem W3C-Standard nicht zwingend angegeben werden. Folgende Angaben sind aber immer nötig: src für die Referenz der Bilddatei. Diese kann wie in HTML üblich relativ oder absolut angegeben werden. Die Grafik selbst ist nicht Bestandteil des HTML-Dokuments, sondern wird in HTML an der Stelle referenziert, an der sie angezeigt werden soll. alt gibt den Alternativtext an, der angezeigt wird, wenn das Bild nicht geladen werden kann oder soll. Screen Reader lesen den Text vor. Width beziehungsweise height geben die Bildbreite beziehungsweise -höhe an. Seit HTML5 sind nur noch Angaben in Pixeln erlaubt; es ist keine Einheit mehr anzugeben. Hier sehen wir mal ein Bild, das durch ein figure-Element gerahmt wird und um eine Bildbeschreibung ergänzt wurde. Sie sollten jedoch stets die Breite und Höhe der Grafik im Quelltext mit angeben. Dadurch entnimmt der Web-Browser bereits der HTML-Datei, wie groß die Grafik ist, und muss nicht warten, bis er die entsprechende Header-Information der Grafikdatei ausgelesen hat. So kann er die gesamte Webseite bereits am Bildschirm aufbauen und bei noch nicht eingelesenen Grafiken erst mal eine entsprechend große Freifläche anzeigen. Ansonsten wartet der Browser mit der Anzeige der Webseite, bis er alle nötigen Größenangaben aus eingebundenen Grafikdateien eingelesen hat, oder er muss den Bildschirmaufbau korrigieren, was nicht sehr schön aussieht. Kommen wir nun zu den Grundlagen der Hyperlinks mit dem Anchor-Element. Der erste Link führt zu einem anderen Webangebot; dies ist ein externer Link. Der zweite Link führt zu einer anderen Seite der gleichen Domain: Das ist also ein interner Link. Der dritte Link ist extern und enthält selbst mehrere Elemente. Mit einem a-Element können Sie einen Link zu einem anderen Dokument oder zu einem Anker (anchor) setzen. Aber erst das href-Attribut (hypertext reference) verwandelt das a-Element in einen Verweis, indem Sie ihm das gewünschte Verweisziel als Wert zuweisen. Hyperlinks sind ein entscheidender Bestandteil jedes Hypertext-Projekts und der intelligente Mehrwert des World Wide Web. Ursprünglich war ein a-Element mit einem name-Attribut ein Sprungziel eines Verweises, dies ist jedoch mittlerweile obsolet. Heute kann jedes beliebige Element mit einem ID-Attribut als Verweisziel fungieren. Als Inhalt des a-Elements, also zwischen dem Begin- und End-Tag, notieren Sie den Text, der dem Anwender als Verweis angeboten wird. Dieser wird bei den meisten Web-Browsern andersfarbig und meist unterstrichen dargestellt. Als Anker beziehungsweise Sprungziel ist jedes ID-Attribut in jedem beliebigen Element geeignet, zum Beispiel: